const mongoose = require('mongoose')

// 引入Schema，Mongoose 里，一切都始于Schema，既表结构的定义
// model 是我们 document 的 Class
const { Schema,model } = mongoose

const userSchema = new Schema({
  __v:{type: Number,select:false}, // 默认的属性，不需要返回
  name: {type: String, required: true},
  password: {type: String,required: true,select:false}, // 查询时不返回密码字段
  avatar: {type: String}, // 头像url地址
  gender: {type: String, enum: ['male', 'female'], default: 'male', require: true, select: false}, // 性别，可枚举,默认为男性
  headline: {type: String, select: false}, // 一句话简介
  locations: {type: [{type: String}], select:false}, // 地址，字符串数组
  business: {type: String, select:false}, // 所在行业
  employments: {type: [{ 
    company: {type: String},  // 公司
    job:{type: String} // 岗位
  }],select:false }, // 职业经历
  educations: {type: [
    {
      schoolName: {type: String}, // 学校
      major: {type: String}, // 专业
      diploma: {type: Number, enmu:[1,2,3,4,5]}, // 学历
      enterance_year:{type: Number}, // 入学年份
      graduation: {type: Number} // 毕业年份
    }
  ], select:false}, // 教育经历
  following: {
    // 关注列表
    // 默认情况下，MongoDB 在 ObjectId 类型的每个文档上创建一个 _id 属性
    // ref 选项告诉 Mongoose 在填充的时候使用 User model。所有储存在 following 中的 _id 都必须是 User model 中 document 的 _id
    type: [{type: Schema.Types.ObjectId, ref: 'User'}],
    select: false
  },
  approvedAnswer:{type:[{type: Schema.Types.ObjectId, ref: 'Answer'}], select: false }, // 赞同答案
  opposeAnswer: {type:[{type: Schema.Types.ObjectId, ref: 'Answer'}], select: false }, // 反对答案
  collections: {type: [{type: Schema.Types.ObjectId, ref: 'Answer'}], select: false} // 收藏
})

// User是集合名称,可以进行增删改查
module.exports = model('User',userSchema)

